2023/12/232070字符
Array
API
const arr = Array.of(1, 2, 3, 4, 5); // 创建数组,只传递一个参数也是一个 length 为 1 的数组
arr.includes(4); //--> true 查找
arr.find((val, i) => val > 2); //--> 3 返回 value 值
arr.findIndex((val, i) => val > 2); //--> 2 返回索引值,找不到返回 -1
arr.map((val, i) => val < 4); //--> [true, true, true, false, false] 遍历数组,返回 boolean
arr.filter((val, i) => i < 3); //--> [1, 2, 3] 过滤
arr.fill('holle', 2, 4); //--> [1, 2, 'hello', 'hello', 3] 填充/替换
arr.copyWithin(2); //--> [1, 2, 1, 2, 'hello'] 从索引为 2 的地方重新排列数组
arr.copyWithin(2, 0, 3); // 后两位参数规定了循环原数组索引 0 - 3 的数据
数组去重
const list = [1, 2, 3, 4, 5, 4, 3, 2, 1];
[...new Set(list)]; //--> [1, 2, 3, 4, 5] 数组去重
数组降维
const arr = [1, [2, [3, [4, 5]]]];
arr.flat(2); //--> [1, 2, 3, [4, 5]] 降维指定层数
arr.flat(Infinity); //--> [1, 2, 3, 4, 5]
分隔遍历
let strArr = ['My name is NB', 'I like cute girl'];
strArr.flatMap(item => item.split(' ')); //--> ["My", "name", "is", "NB", "I", "like", "cute", "girl"]
类数组转数组
const arr = document.getElementsByTagName('li');
[].slice.call(arr); // es5 之前转换数组方法
// es6 新增方法
Array.from(arr); // 类数组中创建一个数组
console.log([...arr]); //--> (4) [li, li, li, li]
const obj = {
0 : 'aaa',
1 : 'bbb',
2 : 'ccc',
length : 2
}
Array.from(obj); //--> (2) ["aaa", "bbb"] from() 只对有 length 属性有效
Intl.Collator 语言敏感字符串比较
const arr = [1, '1', 'hello', '你好', '傻x', '2货', 's叉', 'age18'];
arr.sort(new Intl.Collator("zh").compare); //--> [1, "1", "2货", "你好", "傻x", "age18", "hello", "s叉"]
arr.sort(new Intl.Collator("en").compare); //--> [1, "1", "2货", "age18", "hello", "s叉", "你好", "傻x"]